Aborto con

Aborto con

The previous semantics of LLVM IR had problems in the notion of undefined behavior and its memory model. To resolve these problems, we proposed a new formal semantics that fixes these issues. ; ; you can use it in two ways: ; 1. as illustrated by the default text above, if ; you provide an LLVM IR function called src ; and one called tgt, alive-tv will try to prove ; that tgt refines src ; 2. otherwise, alive-tv will run an optimization Alive2 主要服务于 LLVM,可以发现各种形式的未定义行为 (UB、undefined behavior),它检查函数在 LLVM IR (intermediate representation) 上的 refinement 关系。 Alive2 还提供了独立的工具 alive-tv 来判断转换是否正确: alive2.llvm.org/ 。 refinement 关系不代表等价,它代表目标函数在所有可能的输入状态下,是否表现为 源函数 行为的子集。 即 目标函数 的行为,都包含在源函数的行为当中了。 Alive2是一个用于分析和验证LLVM代码及其转换的开源项目。 它由多个库和工具组成,旨在提供对LLVM代码的深入分析和优化验证。 Alive2的核心功能包括Alive2 IR、符号执行器、LLVM到Alive2 IR的转换器、细化检查(优化验证器)以及SMT抽象层。 Keywords: Translation Validation, Compilers, IR Semantics, The technical core of our work is Alive2, the first fully Automatic Software Verification automatic bounded translation validation tool for LLVM that supports all of its forms of undefined behavior (UB). We designed, implemented, and deployed Alive2: a \emph bounded translation validation tool for the LLVM compiler's intermediate representation (IR). It limits resource consumption by, for example, unrolling loops up to some bound, which means there are circumstances in which it misses bugs. Alive2 is designed to avoid false alarms, is fully. The technical core of our work is Alive2, the first fully automatic bounded translation validation tool for LLVM that supports all of its forms of undefined behavior (UB). Sometimes the Litoutput may not contain useful LLVM IR, in which case executing the outputRUN command separately may give better results. The Alive2 unsoundness report in the corresponding log file will have twoversions of the misoptimized function. Sometimes the Lit output may not contain useful LLVM IR, in which case executing the output RUN command separately may give better results. The Alive2 unsoundness report in the corresponding log file will have two versions of the misoptimized function. Alive2 is designed to avoid false alarms, is fully automatic through the use of an SMT solver, and requires no changes to LLVM. By running Alive2 over LLVM's unit test suite, we discovered and reported 47 new bugs, 28 of which have been fixed already. Included tools: * Alive drop-in replacement * Translation validation plugins for clang and LLVM's `opt` * Standalone translation validation tool: `alive-tv` ( [online] ()) * Clang drop-in replacement with translation validation (`alivecc` and `alive++`) * An LLVM IR interpreter that is UB precise (`alive-exec`).

Leave a Reply

Your email address will not be published. Required fields are marked *

*
*